package eva.savant.businessobject.vt;

import eva.savant.businessobject.gl.Moneda;
import javax.persistence.*;
import java.util.Collection;
import org.hibernate.annotations.LazyCollection;
import org.hibernate.annotations.LazyCollectionOption;

@Table(name="VT_CANAL")
@javax.persistence.Entity(name = "vt.Canal")
public class Canal extends eva.savant.businessobject.Entity {

    @Id
    @Column(name = "ID_CANAL", length = 4, nullable = false)
    private String id; //ID Canal

    @ManyToOne
    @JoinColumn(name = "ID_ORGANIZACION", nullable = false)
    private Organizacion organizacion; //ID Organizacion

    @ManyToOne
    @JoinColumn(name = "ID_MONEDA", nullable = false)
    private Moneda moneda; //ID Moneda

    @Basic
    @Column(name = "CODIGO", length = 2, nullable = false)
    private String codigo; //Codigo

    @Basic
    @Column(name = "NOMBRE", length = 30, nullable = false)
    private String nombre; //Nombre

    @OneToMany
    (mappedBy = "canal")
    private Collection<Cliente> lsCliente;

    @OneToMany
    (mappedBy = "canal", cascade = CascadeType.ALL, orphanRemoval = true) @LazyCollection(LazyCollectionOption.FALSE)
    private Collection<Precio> lsPrecio;

    @OneToMany
    (mappedBy = "canal")
    private Collection<Vista> lsVista;


    public Canal(String id, Organizacion organizacion, Moneda moneda, String codigo, String nombre, Integer operacionId, String sociedadId, Integer usuarioId) {

        this.id= id;

        this.organizacion= organizacion;

        this.moneda= moneda;

        this.codigo= codigo;

        this.nombre= nombre;

        this.operacionId= operacionId;

        this.sociedadId= sociedadId;

        this.usuarioId= usuarioId;

    }

    public Canal() {

    }


    public String getId() {
    
        return id;
    }
    
    public void setId(String id) {
    
        this.id = id;
    }

    public Organizacion getOrganizacion() {
    
        return organizacion;
    }
    
    public void setOrganizacion(Organizacion organizacion) {
    
        this.organizacion = organizacion;
    }

    public Moneda getMoneda() {
    
        return moneda;
    }
    
    public void setMoneda(Moneda moneda) {
    
        this.moneda = moneda;
    }

    public String getCodigo() {
    
        return codigo;
    }
    
    public void setCodigo(String codigo) {
    
        this.codigo = codigo;
    }

    public String getNombre() {
    
        return nombre;
    }
    
    public void setNombre(String nombre) {
    
        this.nombre = nombre;
    }

    public Collection<Cliente> getLsCliente() {
    
        return lsCliente;
    }
    
    public void setLsCliente(Collection<Cliente> lsCliente) {
    
        this.lsCliente = lsCliente;
    }

    public Collection<Precio> getLsPrecio() {
    
        return lsPrecio;
    }
    
    public void setLsPrecio(Collection<Precio> lsPrecio) {
    
        this.lsPrecio = lsPrecio;
    }

    public Collection<Vista> getLsVista() {
    
        return lsVista;
    }
    
    public void setLsVista(Collection<Vista> lsVista) {
    
        this.lsVista = lsVista;
    }

}
